Electronic design automation (EDA) includes a wide variety of tools used to create integrated circuits. Hardware description languages (HDLs) are one such tool. Verilog and Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) are two common examples of HDLs. HDLs often resemble programming languages and can be used to describe integrated circuits in a written format. A written HDL description can be used by various other EDA tools to simulate an integrated circuit, synthesize a different kind of representation of an integrated circuit, fabricate a physical integrated circuit, check the equivalency of two integrated circuits, modify an integrated circuit design for various purposes such as testability, and the like.
Integrated circuit fabricators often provide one or more HDL libraries that describe the various physical integrated circuits that the fabricator can fabricate. A library is often “technology specific” in that it describes a set of circuit elements that can be fabricated by the fabricator using a particular fabrication technology. A designer can design an integrated circuit using HDL elements from one or more libraries and then the fabricator who provided the libraries can automatically create an equivalent physical circuit based on the HDL design.
When the fabricator creates a library, the fabricator can use a wide variety of “shortcuts” to describe the HDL elements. That is, since the fabricator is going to fabricate a circuit based on an HDL description written using his or her own library of HDL elements, the fabrication process can be “tuned” to recognize particular HDL elements that correspond to particular blocks of physical circuit elements. In other words, a number of physical circuit elements may routinely be fabricated as a block in a physical circuit so, rather than individually describing each physical element in generic HDL elements, the fabricator can combine the description of the physical circuit elements into a single technology-specific HDL element.
Basically, a technology-specific HDL element is one type of “truth table” commonly used in HDL descriptions. A truth table has a number of input and output signals and defines a specific behavior in response to various input and output values. A truth table, however, generally provides no insight into the physical make-up of the circuit elements being represented. Truth tables can be created in various HDLs for a variety of purposes in addition to streamlining technology-specific libraries. One common example of an HDL truth table is a Verilog user defined primitive (UDP).
During the design process, a designer may want to use a variety of EDA tools to simulate, verify, and/or modify the design. Many EDA tools use generic algorithms that have been created to operate on generic HDL descriptions. For instance, Verilog includes pre-defined “primitive” elements. Virtually any EDA tool that supports Verilog can operate on a Verilog description written using these pre-defined primitives. HDL descriptions that include non-generic elements, such as technology-specific elements or other kinds of HDL truth tables, tend to create problems for certain generic algorithms. For instance, operating on an HDL element at the truth table level may provide insufficient detail. An algorithm may need to delve into the elements making up a truth table in order to provide meaningful information.